A. Field of the Invention
The present invention relates to a technology that improves security of communications that take place in a computer network such as an intranet or the internet. More specifically, the present invention relates to a technology that improves security of conversations that take place in a chat system.
B. Definition of Terms
Hereinafter, a chat system refers to a system which includes a chat server and a plurality of chat clients, where a plurality of users can communicate each other simultaneously sharing a single channel. A channel is a virtual space where users are logically divided into a group, and what one of the users comments is broadcasted to all of the users who share the channel. A nickname is a name that identifies a user in a chat system. A channel operator property is an authority to administer users and modes within a channel. A bot is a software robot that participates in a channel to provide various services therein.
C. Description of the Related Art
Conventionally, in a chat system having a chat server and a plurality of chat clients, security of conversations between chat clients has been protected by encrypting conversation messages with a common key. The common key can be, for instance, a channel encryption key created by the chat server and distributed to a plurality of chat clients.
Also, there has been known a security method where a bot is connected to the server as one of chat clients, and the bot creates, distributes, and administers channel encryption keys. Another security method has been known where chat clients are provided with channel encryption keys in advance.
In the above described method where the chat server creates channel encryption keys and distributes them to chat clients, security of conversation is protected in a communication path between the clients and the server. However, since the server has the channel encryption key, conversation messages may be decrypted on the server.
With the method where the bot administers the channel encryption keys, conversation messages can not be decrypted on the chat server, but may be decrypted on the bot. Also, it is troublesome to operate the bot, which has to be operated separately from the server. Although the method where chat clients are provided with channel encryption keys is simple, it does not allow the key to be updated. Therefore there is a higher possibility of the key being decrypted.
In view of the above, there exists a need for an improved security system for a chat system which overcomes the above mentioned problems in the prior art. This invention addresses this need in the prior art as well as other needs, which will become apparent to those skilled in the art from this disclosure.
One object of the present invention is to provide a method of and a device for improving security of conversation messages encrypted/decrypted with a channel encryption key, by making decryption of the channel encryption key difficult, while decreasing burden of administering the channel encryption key.
In accordance with one aspect of the present invention, a security method for ensuring privacy and security in a communication system where communication devices are configured to conduct simultaneous two-way communication via a single network. The security improvement method comprises steps of:
(A) generating an encryption key at at least one of the communication devices, where the encryption key is adapted to encrypt and decrypt communication contents within the network;
(B) requesting the encryption key from one of the other communication devices after a communication device joins the network;
(C) upon receiving a request for the encryption key from one of the communication devices, giving the generated encryption key to the requesting communication device; and
(D) encrypting and decrypting communication contents exchanged between the communication devices within the network.
If the security improvement method is applied to a chat system, a channel encryption key is generated by a user who opened a channel. A user who joined the channel afterward requests the channel encryption key from the first user. The first user grants the encryption key upon receiving the request. In the present invention, the cannel encryption key is distributed in this manner, whereby channel encryption is not deciphered at the server or the bot.
Preferably, the security system of the present invention is utilized in a communication device that is configured to conduct simultaneous two-way communication with other communication devices sharing a single network. The security system preferably comprises memorizing means, encrypting means, decrypting means, user administering means, key obtaining means and key distributing means.
The memorizing means memorizes an encryption key adapted to encrypt and decrypt communication contents within the shared network. The encrypting means obtains communication contents from the communication device and encrypts the communication contents with the encryption key. The decrypting means obtains communication contents from the communication device and decrypts the communication contents with the encryption key.
The user administering means obtains from the communication device predetermined user information when the communication device participates in the network, and stores the user information in the memorizing means. The user information includes at least a list of other communication devices that participate in the network. The key obtaining means selects a communication device from one of the other communication devices in the list, requests an encryption key from the selected communication device, and stores the encryption key in the memorizing means when the encryption key is sent from the selected communication device upon the request. The key distributing means retrieves an encryption key from the memorizing means and distributes the encryption key to another communication device when the another communication device sent a request for the encryption key.
When the security system is utilized with a chat client, the user administering means obtains from the chat client user information including a list of nicknames of users who participate in the channel. The key obtaining means selects a user from the nickname list, and requests a channel encryption key from the user. At the user terminal, which received the request, the key distributing means retrieves a channel encryption key from the memorizing means, and sends the channel encryption key to the requesting user terminal. At the requesting user terminal, the key obtaining means receives the channel encryption key, and stores the channel encryption key in the memorizing means. The encrypting means and the decrypting means thereafter encrypt and decrypt conversation messages using the channel encryption key stored in the memorizing means.
Preferably, the security system is adapted to be coordinated with coordinating means of the communication device. The coordinating means is adapted to relay between the communication device and the security system a request for an encryption key, the encryption key sent upon the request, information regarding the user information and communication contents. The communication contents are relayed only when a predetermined condition is met.
When communication content received in encrypted, the coordinating means sends the communication content to the security system. After the communication content is decrypted in the security system, the decrypted communication content is sent from the security system to the communication device via the coordinating means, and is displayed in a similar manner as in the case of regular communication content. When communication content needs to be encrypted, the coordinating means sends the inputted communication content to the security system. After the communication content is encrypted in the security system, the encrypted communication content is sent from the security system to the communication device via the coordinating means, and is sent out in a similar manner as in the case of regular communication content.
Preferably in the security system of the present invention, the user administering means grants key distribution property based on the user information and stores the key distribution property in the memorizing means, where the key distribution property is adapted to allow distribution of an encryption key to another security system.
A chat client can obtain, as user information, informations such as nickname, user ID, whether the user is a channel operator or not. By making the key distribution property correspond to the channel operator property, the key distribution property can be configured to be granted if the user is a channel operator.
Preferably in the security system of the present invention, the user administering means selects another communication device based on a predetermined condition. The user administering means also grants key distribution property to the selected communication device, and obtains from the communication device a setting of the key distribution property and a name of a communication device to which the setting applies. The user administering means also stores the setting and the name in the memorizing means.
For instance, if the chat client has opened a channel, the user administering means of the chat client selects another user terminal. The user administering means can select user terminals by selecting a predetermined number of user terminals randomly from the chat clients who participate in the channel, or by selecting a predetermined number of chat clients in order of participation in the channel. To allow other user terminals to grant the key distribution property, the key distribution property should be configurable as part of the user information by adding an extension protocol to a protocol of the chat system. It is also possible to make the key distribution property grantable by other user terminals through a setting command, as in the case of setting a channel operator.
Preferably in the security system of the present invention, the user administering means accepts a selection of another communication device, and a command for granting and canceling the key distribution property to the selected communication device, where the key distribution property allows distribution of an encryption key, obtains from the selected communication device a setting of the key distribution property and a name of the communication device to which the setting applies, and stores the setting and the name of the communication device in said memorizing means.
By allowing the user to grant and cancel the key distribution property, the user can adjust the amount of burden of key distribution at each user terminal.
Preferably in the security system of the present invention, the key obtaining means selects, based on a predetermined condition, a communication device from which an encryption key is requested.
In other words, the key obtaining means selects a user terminal from which a channel encryption key is requested by generating random numbers or by applying a predetermined condition such as that the user terminal to be selected should have the key distribution property.
Preferably in the security system of the present invention, the key obtaining means selects, based on a predetermined condition, a communication device from which an encryption key is requested, requests an encryption key from the selected communication device, and if the communication device does not send the encryption key within a predetermined period of time, selects another communication device for requesting an encryption key therefrom.
If the encryption key is not sent from the requested user terminal for more than a predetermined period of time, the key obtaining means determines that the requested user terminal had a trouble in sending the encryption key, and therefore reselects another user terminal to request the encryption key therefrom. The user terminal is selected based on a predetermined condition such as that the user terminal to be selected should have the key distribution property.
Preferably in the security system of the present invention, the key obtaining means requests obtainment of an encryption key when the communication contents are encrypted.
For instance, if a chat system is configured to be in encryption mode, where all the communication contents within the channel are encrypted, the key obtaining means obtains from the chat client the mode of the channel in which the user participates. If the encryption mode is on, the key obtaining means requests obtainment of an encryption key.
Preferably in the security system of the present invention, the decrypting means determines that a request for an encryption key should be made when communication contents received from the communication device cannot be decrypted; and the key obtaining means requests obtainment of an encryption key based on the determination of said decrypting means.
The security system can also be configured to allow the encryption mode to be changed for each conversation message. For instance, the user chooses whether a conversation message should be encrypted or not by pressing an on/off command button shown by the GUI (Graphic User Interface). When the encryption mode is on, the encrypting means attaches an encryption flag at the beginning of the encrypted conversation message. The communication device adds a send command to the conversation message, and sends them to the network. When the receiving user terminal does not have an encryption key to decrypt the encrypted conversation message, or when the encryption key that the receiving user terminal has cannot decrypted the received encrypted conversation message, the decrypting means of the receiving user terminal determines that an encryption key should be requested. The key obtaining means of the receiving user terminal requests obtainment of an encryption key based on the determination of the decrypting means.
Preferably in the security system of the present invention, the memorizing means stores a plurality of encryption keys and key identification IDs in a manner in which the encryption keys and the key identification IDs correspond to each other. The encrypting means is adapted to send key identification information and communication contents to the network via the communication device. The key identification information identifies the encryption key to be used for encrypting the communication content. The decrypting means examines whether an encryption key identified by key identification information is stored in said memorizing means. If the encryption identified by the key identification information is not stored in said memorizing means the key obtaining means requests obtainment of an encryption key specifying the key identification information.
In this case, the encryption mode is set for each conversation message. If the decrypting means determines that the user terminal does not have the encryption key used for encrypting the particular conversation, the key obtaining means requests obtainment of a channel encryption key based on the determination. The key obtaining means identifies the particular encryption key requested by identifying a key identification number. Examples of key identification number include a serial number of the channel encryption key assigned to each channel encryption key generated since the channel is opened, and a value obtained by applying a one-way function such as hash function to a channel encryption key.
Preferably in the security system of the present invention, the key obtaining means sends a public key of a requesting user from a public key encryption system along with the request for an encryption key, and decrypts the encryption key with a private key of the requesting user from the public key encryption system when the encryption key is sent. The key distributing means distributes an encryption key after encrypting the encryption key with the public key from the public key encryption system of the requesting user.
The key obtaining means of the requesting communication device requests an encryption key by giving its own public key. The key obtaining means of the communication device, which received the request, sends the requested encryption key after encrypting the encryption key with the public key. Upon receiving the encrypted encryption key, the key obtaining means of the requesting communication device decrypts the encrypted encryption key, thereby obtaining the encryption key.
In accordance with another aspect of the present invention, when a request for an encryption key is sent from one of the other communication devices, the key distributing means is adapted to verify the request, retrieve one of the encryption keys based on a result of the verification, and send the encryption key to the requesting communication device.
At a communication device, which received a request for a channel encryption key, the key distributing means verifies the legitimacy of the request. If it turns out that the request came from a legitimate user, the key obtaining means retrieves a channel encryption key from the memorizing means, and sends it to the requesting user terminal. In the previous example where the public key of the requesting user terminal is utilized to encrypt the encryption key, the key distributing means should also verify the legitimacy of the public key. Examples of legitimate public key include a public key having an electronic signature of authenticator, and a public key having an electronic key of the user from whom the electronic key is requested.
In accordance with another aspect of the present invention, the security system of the present invention further includes key updating means for updating an encryption key at a predetermined time, and distributing the updated encryption key to other communication devices.
By updating the encryption key at certain times, it becomes more difficult for a third party to decipher the encryption key, whereby communications are protected better. Examples of times at which the encryption key can be updated include: every certain period of time; when a certain number or a certain amount of conversation messages has been made in the channel; when the number of participants in the network exceeds a predetermined number; when a certain period of time elapsed since the last comment made; and when the requests an encryption key be updated. It is also possible to configure the key updating means such that an encryption key is distributed only when conversations in the channel stop, not while the conversations in the channel continue.
In accordance with another aspect of the present invention, the security system of the present invention further includes key updating means for updating an encryption key at a predetermined time, and distributing the updated encryption key to other communication devices after encrypting the updated encryption key with a second latest encryption key.
By encrypting the updated encryption key with the second latest encryption key, it is less likely that the updated encryption key will be deciphered while being distributed.
Preferably in the security system of the present invention, the key updating means generates an encryption key based on any or a combination of secret information stored inside each communication device, time information, and information unique to the network.
A new encryption key can be generated from, for instance, a serial number of the mother board, an address in which the program is stored, time at which the encryption key is to be updated, channel name, and/or a password.
Preferably in the security system of the present invention, the key updating means generates an encryption key by applying a one-way function, to any or a combination of secret information stored inside each communication device, time information, and information unique to the network.
A new encryption key can be generated by applying hash function to, for instance, a serial number of the mother board, an address in which the program is stored, time at which the encryption key is to be updated, channel name, and/or a password.
Preferably in the security system of the present invention, the user administering means sets key update property based on the user information obtained, with the key update property adapted to allow update and distribution of an encryption key, and stores the key update property in the memorizing means. The security system further includes key updating means for updating an encryption key at a predetermined time based on the setting of the key update property, and distributing the encryption key to other communication devices.
As in the case of the above described key distribution property, the key update property can be granted to users who have the channel operator property, or to users who stayed in a channel through the end thereof. The key update property can also be made configurable as part of the user information by adding an extension protocol to the original protocols. The key updating property can also be made configurable through a configuration command of a channel operator.
In accordance with another aspect of the present invention, the user administering means is adapted to select another communication device based on a predetermined condition when the user has key update property which allows distribution of an encryption key, grant the key update property to the selected communication device, obtain a setting of the key update property and a name of the communication device to which the setting applies, and store the setting and the name of the communication device in said memorizing means. The security system further includes key updating means for updating an encryption key at a predetermined time based on the setting of the key update property, and distributing the encryption key to other communication devices.
Users who have the key updating property can allow other users to grant the key updating property. The other users are selected by randomly selecting a predetermined number of communication devices, by selecting a predetermined number of communication devices in order of participation in the channel, or by selecting communication devices from the communication device list. The key update property can be granted by setting a new command in the chat system. User terminals participating in the chat system update the user information according to the command.
Preferably in the security system of the present invention, the user administering means grants key update property and an updating order or sequence based on the obtained user information, and stores the key update property and the updating order or sequence in the memorizing means. The key update property is adapted to allow update and distribution of an encryption key. The security system further includes key updating means for updating an encryption key at a predetermined time based on key update property and an order or sequence, and distributing the encryption key to other communication devices.
For example, the key update property can be granted to users who have the channel operator property, whereas the updating sequence can be the order in which the user participated in the channel. The user administering means of a user terminal which is second or later in the updating sequence automatically shifts upwardly when the communication device which is first in the updating sequence leaves the network, or when a certain period of time elapsed since the last time an encryption key was updated and therefore it is determined that the communication device with the first order had a trouble updating the encryption key. The order in the updating sequence is shifted upward by one from the prior order given in the user information. Thereafter, the communication device that became first in the updating sequence generates an encryption key at a predetermined time.
The security system further includes key update means for updating an encryption key at a predetermined time based on key update property and an order, and distributing an encryption key to other communication devices. Preferably in the security system of the present invention, the user administering means is adapted to select another communication device based on a predetermined condition when a user has key update property. The key update property allows the user to update and distribute the encryption key to other users. The key update property also allows the user to grant the key update property and the updating sequence to the communication device. The key update property also allows the user to obtain from the communication device settings for the key update property, the updating sequence and a name of the communication device to which the settings apply. The key update property also allows the user to store the settings and the name in said memorizing means, and rewrite the updating sequence as the user information changes.
For instance, the communication device that is the first in the updating sequence can distribute and update a channel encryption key. The communication devices that are second or later in the updating sequence receive a new channel encryption key distributed by the communication device that is the first in the updating sequence. When the communication device that is first in the updating sequence leaves the network, or when a predetermined period of time elapsed since the last time an encryption key was updated, and therefore it is determined that the communication device that is first in the updating sequence had a trouble updating the encryption key, the communication devices that are second or later in the updating sequence automatically shift in order by one from the prior order stored in the user information. Thereafter, the communication device that became first in the order distributes and updates an encryption key.
In accordance with another aspect of the present invention, the security improvement system comprises a plurality of communication devices adapted to conduct simultaneous two-way communication sharing a single network. Each of the communication devices includes memorizing means, encrypting means, decrypting means, user administering means, key obtaining means, and key distributing means.
The memorizing means memorizes an encryption key adapted to encrypt and decrypt communication contents within the shared network.
The encrypting means obtains communication contents from the communication devices, and encrypts the communication contents with the encryption key. The decrypting means obtains communication contents from the communication devices and decrypts the communication contents with the encryption key. The user administering means obtains from the communication device predetermined user information when the communication device participates in the network, and storing the user information in the memorizing means. The user information includes at least a list of other communication devices that participate in the network.
The key obtaining means selects a communication device from the communication devices in the list, requests an encryption key from the selected communication device, and stores the encryption key in the memorizing means when the encryption key is sent from the selected communication device upon the request. The key distributing means retrieves an encryption key from the memorizing means and distributes the encryption key to another communication device when the another communication device sent a request for the encryption key. Preferably, this security system of the present invention has similar effects as the security system of discussed above.
Preferably in the security system of the present invention, a computer readable recording medium is to be utilized in a communication device that is adapted to conduct simultaneous two-way communication with other communication devices sharing a single network. The computer readable recording medium contains a security improvement program therein. The security improvement program is configured to execute the steps of:
(A) storing an encryption key adapted to encrypt and decrypt communication contents within the shared network;
(B) encrypting the communication contents with the encryption key;
(C) decrypting the communication contents with the encryption key;
(D) obtaining from the communication device predetermined user information when the communication device participates in the network, and storing the user information in memorizing means, with the user information including at least a list of other communication devices that participate in the network;
(E) selecting a communication device from the communication devices in the list, requesting an encryption key from the selected communication device, and storing the encryption key in the memorizing means when the encryption key is sent from the selected communication device upon the request; and
(F) retrieving an encryption key from the memorizing means and distributing the encryption key to another communication device when the another communication device sent a request for the encryption key. Preferably, this security system of the present invention has similar effects as the security system of discussed above.